package com.dp.appi.util;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by bchen on 2015/3/23.
 * 系统异常信息
 */
public enum SYS {

    E10001("未查询到任何数据"),
    E10002("系统异常"),
    E10003("项目不存在。请上传项目"),

    L10003("未登录"),
    L10004("未注册"),
    L10005("账号或密码输入异常"),
    L10006("发送短信验证码失败"),
    L10007("账户未被激活"),
    ////////////认证///////////
    OA001("账号已经存在"),
    OA002("手机号码已经存在"),
    OA003("账号输入错误"),
    OA004("未设置密保问题"),
    OA005("密保答案输入错误"),
    OA006("登录账号不能为空"),
    OA007("登录密码不能为空"),
    OA008("密保问题未设置"),
    OA009("密保问题或答案不能为空"),
    ////////////认证///////////
    //////短信///////
    SMS001("发送短信验证码失败"),
    SMS002("验证码输入不正确"),
    SMS003("验证码过期"),
    SMS004("令牌错误"),
    SMS005("请休息一会再发"),
    //////项目///////
    PRO001("项目阶段不存在"),
    //////项目///////
    EXPO001("不具有操作踏勘权限"),
    EXPO002("没有点位信息"),
    EXPO003("不存在阶段"),
    EXPO004("典设方案已经加入"),
    EXPO005("典设模块已经加入"),
    EXPO006("材料已经加入"),

    EXPO007("特征点不存在"),
    EXPO008("定位点不存在"),
    EXPO009("失败，该特征点已关联通道"),
    EXPO010("失败，没找到点位信息"),
    EXPO011("当前用户的组织机构不存在"),
    EXPO012("踏勘ID不能为空"),
    EXPO013("统计类别不能为空"),
    EXPO014("openIdent为空"),
    EXPO015("用户信息为空"),
    EXPO016("参数错误"),
    EXPO017("不能重复收藏"),

    ///购买///
    BUY0001("查询产品购买菜单为空"),
    ///上传下载
    PACK0001("文件查找为空"),
    PACK0002("文件过多"),
    PACK0003("删除对象时，遍历主键为空"),
    PACK0004("查找点位对象表名为空"),
    PACK0005("uuid未在map中找到对应值"),
    PACK0006("项目处于审核阶段不能上传踏勘数据,是否删除本地数据？"),
    PACK0007("项目处于交付阶段不能上传踏勘数据,是否删除本地数据？"),
    PACK0008("项目处于设计阶段，踏勘人员不能上传数据,是否删除本地数据？"),
    PACK0009("未知阶段"),
    PACK0010("项目已经被删除，不可上传数据。是否删除本地数据？"),
    PACK0011("项目归属为空，不可上传数据。是否删除本地数据？"),
    PACK0012("当前用户未加入任何组织结构，不可上传数据。是否删除本地数据？"),
    PACK0013("当前用户单位和项目归属不是同一单位，不可上传数据。是否删除本地数据？"),

    SUCCESS("操作成功");



    private String value;
    public Map<String, Object> Msg = new HashMap<String, Object>();

    private SYS(String value) {
        this.value = value;
        this.Msg = msgMap();
    }

    public String getValue() {
        return value;
    }

    public boolean isRest() {
        return false;
    }

    public Map<String, Object> msgMap() {
        Map<String, Object> resultMap = new HashMap<String, Object>();
        resultMap.put("code", this);
        resultMap.put("msg", value);
        return resultMap;
    }

}
